
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#include <GLES2/gl2platform.h>

#include "../base/Draw_Base.h"

#ifndef _GLES2_BASE_H
#define _GLES2_BASE_H


/** 配置数组的类型定义 */
typedef float CONFTYPE;


/**
 *  config info
 */
struct GLES2_Base_Conf : public Draw_Base_Conf {
    // 配置数组
    CONFTYPE* m_tConfs;
    
    static const char m_pFragmentShader[];
	
    static const char m_pVertexShader[];
    
    GLuint m_nProgram;
        
    GLES2_Base_Conf();
    
};

class GLES2_Base  : public Draw_Base
{
public:
	/**
	 * 创建program
	 */
	int createProgram();
	
	void draw();
	
	/**
	 * 构造函数
	 */
	GLES2_Base();
	
private:
    
	int loadShader(GLenum a_eShaderType, const char* a_pSource);
	
	/**
	 * 打印GL的字符内容
	 */
	static void printGLString(const char *name, GLenum s);
	/**
	 * 打印错误内容
	 */
	static void checkGlError(const char* op);
	    
	GLES2_Base_Conf* m_sGLES2_Base_Conf;
    
};

#endif





